<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>后盾人</title>
</head>
<body>

    <script>
        // setTimeout(() => {
        //     console.log("setTimeout");
        // },0);

        // //先执行宏任务，再执行微任务
        // new Promise(resolve => {
        //     resolve();
        //     console.log("promise");
        // }).then(value => console.log("成功"));
        // console.log("后盾人");


        // let promise = new Promise(resolve => {
        //     setTimeout(() => {
        //         resolve();
        //         console.log("setTimeout");
        //     },0);
        //     console.log('promise');
        // }).then(value => console.log("成功"));
        // console.log("houdunren.com");

        //状态被改变之后就不能进行再修改了,下面通过resolve改变为成功之后,
        //promise状态已经完成，就不能使用reject更改状态了

        // new Promise((resolve,reject) => {
        //     reject("请求失败");
        //     resolve("操作成功");
        // }).then(
        //     msg => {
        //         console.log('success'+msg);
        //     },
        //     error => {
        //         console.log('error' + error)
        //     }
        // );


        //下例中p2返回了p1所以此时p2的状态已经没有意义了，后面的所有处理都是对p1的处理

        //动态改变
        // const p1 = new Promise((resolve,reject) => {
        //     resolve('fulfilled');
        // });

        // const p2 = new Promise(resolve => {
        //     resolve(p1);
        // }).then(
        //     value => {
        //         console.log(value);
        //     },
        //     reason => {
        //         console.log(reason)
        //     }
        // );


        // const p1 = new Promise((resolve,reject) => {
        //     resolve(
        //         //p2
        //         new Promise((s,e) => {
        //             s('成功')
        //         })
        //     )
        // }).then(msg => {
        //     console.log(msg)
        // });


        //当promise作为参数传递的时候，需要等待promise执行完之后才可以继承，
        //下面的p2执行要等待p1的执行完毕

        // const p1 = new Promise((resolve,reject) => {
        //     setTimeout(() => {
        //         resolve("操作成功");
        //     },2000);
        // });

        // const p2 = new Promise((resolve,reject) => {
        //     resolve(p1);
        // }).then(
        //     msg => {
        //         console.log(msg)
        //     },
        //     error => {
        //         console.log(error);
        //     }
        // );

        






    </script>

</body>
</html>
